// 浅拷贝
const target = { a: 1, b: 2, d: { d1: 6 } }
const source = { b: 4, c: 5 }

const returnedTarget = Object.assign(target, source)
returnedTarget.d.d1 = 7
console.log({ target, source, returnedTarget }) // 三个对象中的d.d1的值都是7了
// 如果不想影响target对象
// const returnedTarget = Object.assign({},target, source)
// es6扩展运算符拷贝
// const returnedTarget = { ...target, ...source }

// 深拷贝
obj1 = { a: 0, b: { c: 0 } }
let obj3 = JSON.parse(JSON.stringify(obj1))
obj1.a = 4
obj1.b.c = 4
console.log({
  obj1,
  obj3,
}) // 两个对象中的b.c的值不一样
